<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 参数传参: 实参和形参一一对应
    // function add(a, b) {
    //     return a + b;
    // }
    // function add(a, b, c) {
    //     return a + b + c;
    // }


    // 要求函数中可以传一个或多个参数, -> 求多个数之和(number)

    // arguments 函数的内置参数  => 每个函数都有 
    // 用于存储在函数调用时实际参数的一个集合  


    // arguments的特性:
    // 1. 有length属性 -> 表长度(集合中成员的个数)
    // 2. 对应下标取值和赋值(arguments取值和赋值)   点语法  中括号语法
    //    arguments.属性     arguments.length      注意: 不能点数字arguments.0 => 语法问题
    //    arguments["属性"]  arguments["length"]   arguments["0"] -> 数字的引号可以省略 arguments[0]
    // 3. 可以被循环遍历(依次取出集合中的每一个值)  

    // 注意: 
    // 对应下标取值时,取一个不存在的下标(属性)  => undefined
    // 对应下标赋值时,对一个不存在的下标(属性)赋值  => 新增该下标(属性)到集合中,  中间部分会预留出来
    // 下标的最大值 = 集合.length - 1;



    debugger;
    function add() {
        console.log("函数被调用:", arguments); // [1, 4, 7, 2, 5, 8, 3, 6, 9]

        // console.log(arguments.length, arguments["length"]);

        // 对应下标取值和赋值
        // console.log(arguments.0);  // 报错 -> 语法错误

        // 取值 
        // console.log(arguments[7]);
        // console.log(arguments[77]); // 取一个不存在的下标 -> undefined

        // 赋值
        // arguments[7] = 66;
        // arguments[77] = 66;   // 对一个不存在的下标(属性)赋值

        // console.log(arguments);


        // 循环遍历
        // console.log(arguments[0]);
        // console.log(arguments[1]);
        // console.log(arguments[2]);
        // console.log(arguments[3]);
        // console.log(arguments[4]);

        //  i < arguments.length    或   i <= arguments.length - 1
        // for (var i = 0; i < arguments.length; i++) {
        //     console.log(arguments[i]); // arguments[0]....
        // }

        var sum = 0;
        for (var i = 0; i < arguments.length; i++) {
            var item = arguments[i]; // arguments[0]....
            sum += item;
        }
        return sum;


    }

    var res = add(1, 4, 7, 2, 5, 8, 3, 6, 9);
    console.log(res);

    var res = add(3, 9, 21, 4);
    console.log(res);


</script>

</html>